From: kaf24@localhost.localdomain Date: Sat, 30 Dec 2006 15:45:13 +0000 (+0000) Subject: [HVM] Rationalise OEM and Creator IDs and Table Revisions. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15422^2~115 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=b8ca0e6839eaa90504835e4ab65d72b069660cc9;p=xen.git [HVM] Rationalise OEM and Creator IDs and Table Revisions. Create virtualised IDs and use them consistently. Signed-off-by: Keir Fraser --- diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile index 16803d78d6..c5a1283a9e 100644 --- a/tools/firmware/hvmloader/acpi/Makefile +++ b/tools/firmware/hvmloader/acpi/Makefile @@ -24,7 +24,7 @@ C_SRC = build.c dsdt.c static_tables.c H_SRC = $(wildcard *.h) OBJS = $(patsubst %.c,%.o,$(C_SRC)) -IASL_VER = acpica-unix-20050513 +IASL_VER = acpica-unix-20060707 IASL_URL = http://developer.intel.com/technology/iapc/acpi/downloads/$(IASL_VER).tar.gz # Disable PIE/SSP if GCC supports them. They can break us. diff --git a/tools/firmware/hvmloader/acpi/acpi2_0.h b/tools/firmware/hvmloader/acpi/acpi2_0.h index 247b1f0976..04824f5642 100644 --- a/tools/firmware/hvmloader/acpi/acpi2_0.h +++ b/tools/firmware/hvmloader/acpi/acpi2_0.h @@ -50,17 +50,18 @@ struct acpi_header { uint8_t revision; uint8_t checksum; uint8_t oem_id[6]; - uint64_t oem_table_id; + uint8_t oem_table_id[8]; uint32_t oem_revision; uint32_t creator_id; uint32_t creator_revision; }; -#define ACPI_OEM_ID {'I','N','T','E','L',' '} -#define ACPI_OEM_TABLE_ID ASCII32(' ','T','B','D') -#define ACPI_OEM_REVISION 0x00000002 -#define ACPI_CREATOR_ID 0x00 /* TBD */ -#define ACPI_CREATOR_REVISION 0x00000002 +#define ACPI_OEM_ID "Xen" +#define ACPI_OEM_TABLE_ID "HVM" +#define ACPI_OEM_REVISION 0 + +#define ACPI_CREATOR_ID ASCII32('H','V','M','L') /* HVMLoader */ +#define ACPI_CREATOR_REVISION 0 /* * ACPI 2.0 Generic Address Space definition. @@ -121,7 +122,6 @@ struct acpi_20_rsdt { struct acpi_header header; uint32_t entry[1]; }; -#define ACPI_2_0_RSDT_REVISION 0x01 /* * Extended System Description Table (XSDT). @@ -130,7 +130,6 @@ struct acpi_20_xsdt { struct acpi_header header; uint64_t entry[1]; }; -#define ACPI_2_0_XSDT_REVISION 0x01 /* * TCG Hardware Interface Table (TCPA) @@ -141,8 +140,6 @@ struct acpi_20_tcpa { uint32_t laml; uint64_t lasa; }; - -#define ACPI_2_0_TCPA_REVISION 0x02 #define ACPI_2_0_TCPA_LAML_SIZE (64*1024) /* @@ -202,7 +199,6 @@ struct acpi_20_fadt { struct acpi_20_generic_address x_gpe0_blk; struct acpi_20_generic_address x_gpe1_blk; }; -#define ACPI_2_0_FADT_REVISION 0x03 /* * FADT Boot Architecture Flags. @@ -254,8 +250,6 @@ struct acpi_20_madt { uint32_t flags; }; -#define ACPI_2_0_MADT_REVISION 0x01 - /* * HPET Description Table @@ -268,8 +262,6 @@ struct acpi_20_hpet { uint16_t min_tick; uint8_t page_protect; }; - -#define ACPI_2_0_HPET_REVISION 0x01 #define ACPI_HPET_ADDRESS 0xFED00000UL /* @@ -343,6 +335,17 @@ struct acpi_20_madt_intsrcovr { #define ACPI_2_0_TCPA_SIGNATURE ASCII32('T','C','P','A') #define ACPI_2_0_HPET_SIGNATURE ASCII32('H','P','E','T') +/* + * Table revision numbers. + */ +#define ACPI_2_0_RSDP_REVISION 0x02 +#define ACPI_2_0_FADT_REVISION 0x04 +#define ACPI_2_0_MADT_REVISION 0x02 +#define ACPI_2_0_RSDT_REVISION 0x01 +#define ACPI_2_0_XSDT_REVISION 0x01 +#define ACPI_2_0_TCPA_REVISION 0x02 +#define ACPI_2_0_HPET_REVISION 0x01 + #pragma pack () #define ACPI_PHYSICAL_ADDRESS 0xEA000 diff --git a/tools/firmware/hvmloader/acpi/build.c b/tools/firmware/hvmloader/acpi/build.c index db1c902761..32d269d213 100644 --- a/tools/firmware/hvmloader/acpi/build.c +++ b/tools/firmware/hvmloader/acpi/build.c @@ -57,8 +57,8 @@ int construct_madt(struct acpi_20_madt *madt) memset(madt, 0, sizeof(*madt)); madt->header.signature = ACPI_2_0_MADT_SIGNATURE; madt->header.revision = ACPI_2_0_MADT_REVISION; - strncpy(madt->header.oem_id, "INTEL ", 6); - madt->header.oem_table_id = ACPI_OEM_TABLE_ID; + strncpy(madt->header.oem_id, ACPI_OEM_ID, 6); + strncpy(madt->header.oem_table_id, ACPI_OEM_TABLE_ID, 8); madt->header.oem_revision = ACPI_OEM_REVISION; madt->header.creator_id = ACPI_CREATOR_ID; madt->header.creator_revision = ACPI_CREATOR_REVISION; @@ -129,8 +129,8 @@ int construct_hpet(struct acpi_20_hpet *hpet) memset(hpet, 0, sizeof(*hpet)); hpet->header.signature = ACPI_2_0_HPET_SIGNATURE; hpet->header.revision = ACPI_2_0_HPET_REVISION; - strncpy(hpet->header.oem_id, "INTEL ", 6); - hpet->header.oem_table_id = ACPI_OEM_TABLE_ID; + strncpy(hpet->header.oem_id, ACPI_OEM_ID, 6); + strncpy(hpet->header.oem_table_id, ACPI_OEM_TABLE_ID, 8); hpet->header.oem_revision = ACPI_OEM_REVISION; hpet->header.creator_id = ACPI_CREATOR_ID; hpet->header.creator_revision = ACPI_CREATOR_REVISION; @@ -184,12 +184,11 @@ int construct_secondary_tables(uint8_t *buf, unsigned long *table_ptrs) tcpa->header.signature = ACPI_2_0_TCPA_SIGNATURE; tcpa->header.length = sizeof(*tcpa); tcpa->header.revision = ACPI_2_0_TCPA_REVISION; - strncpy(tcpa->header.oem_id, "IBM ", 6); - tcpa->header.oem_table_id = ASCII64(' ', ' ', ' ', ' ', - ' ', 'x', 'e', 'n'); - tcpa->header.oem_revision = 1; - tcpa->header.creator_id = ASCII32('I', 'B', 'M', ' '); - tcpa->header.creator_revision = 1; + strncpy(tcpa->header.oem_id, ACPI_OEM_ID, 6); + strncpy(tcpa->header.oem_table_id, ACPI_OEM_TABLE_ID, 8); + tcpa->header.oem_revision = ACPI_OEM_REVISION; + tcpa->header.creator_id = ACPI_CREATOR_ID; + tcpa->header.creator_revision = ACPI_CREATOR_REVISION; tcpa->lasa = e820_malloc( ACPI_2_0_TCPA_LAML_SIZE, E820_RESERVED, (uint32_t)~0); if ( tcpa->lasa ) diff --git a/tools/firmware/hvmloader/acpi/dsdt.asl b/tools/firmware/hvmloader/acpi/dsdt.asl index 1cf9f538a7..d47ea8d0c4 100644 --- a/tools/firmware/hvmloader/acpi/dsdt.asl +++ b/tools/firmware/hvmloader/acpi/dsdt.asl @@ -17,7 +17,7 @@ * Place - Suite 330, Boston, MA 02111-1307 USA. */ -DefinitionBlock ("DSDT.aml", "DSDT", 1, "INTEL","int-xen", 2006) +DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) { Name (\PMBS, 0x0C00) Name (\PMLN, 0x08) diff --git a/tools/firmware/hvmloader/acpi/dsdt.c b/tools/firmware/hvmloader/acpi/dsdt.c index c8d5f28520..698bd72848 100644 --- a/tools/firmware/hvmloader/acpi/dsdt.c +++ b/tools/firmware/hvmloader/acpi/dsdt.c @@ -1,22 +1,22 @@ /* * * Intel ACPI Component Architecture - * ASL Optimizing Compiler / AML Disassembler version 20050513 [Aug 11 2006] - * Copyright (C) 2000 - 2005 Intel Corporation - * Supports ACPI Specification Revision 3.0 + * ASL Optimizing Compiler version 20060707 [Dec 30 2006] + * Copyright (C) 2000 - 2006 Intel Corporation + * Supports ACPI Specification Revision 3.0a * - * Compilation of "dsdt.asl" - Thu Dec 21 10:37:33 2006 + * Compilation of "dsdt.asl" - Sat Dec 30 15:31:23 2006 * * C source code output * */ -unsigned char AmlCode[] = +unsigned char AmlCode[] = { 0x44,0x53,0x44,0x54,0xD9,0x0D,0x00,0x00, /* 00000000 "DSDT...." */ - 0x01,0xED,0x49,0x4E,0x54,0x45,0x4C,0x00, /* 00000008 "..INTEL." */ - 0x69,0x6E,0x74,0x2D,0x78,0x65,0x6E,0x00, /* 00000010 "int-xen." */ - 0xD6,0x07,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ - 0x13,0x05,0x05,0x20,0x08,0x50,0x4D,0x42, /* 00000020 "... .PMB" */ + 0x02,0xFB,0x58,0x65,0x6E,0x00,0x00,0x00, /* 00000008 "..Xen..." */ + 0x48,0x56,0x4D,0x00,0x00,0x00,0x00,0x00, /* 00000010 "HVM....." */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x07,0x07,0x06,0x20,0x08,0x50,0x4D,0x42, /* 00000020 "... .PMB" */ 0x53,0x0B,0x00,0x0C,0x08,0x50,0x4D,0x4C, /* 00000028 "S....PML" */ 0x4E,0x0A,0x08,0x08,0x49,0x4F,0x42,0x31, /* 00000030 "N...IOB1" */ 0x00,0x08,0x49,0x4F,0x4C,0x31,0x00,0x08, /* 00000038 "..IOL1.." */ diff --git a/tools/firmware/hvmloader/acpi/ssdt_tpm.asl b/tools/firmware/hvmloader/acpi/ssdt_tpm.asl index 98010a7f14..49a5e1bc9f 100644 --- a/tools/firmware/hvmloader/acpi/ssdt_tpm.asl +++ b/tools/firmware/hvmloader/acpi/ssdt_tpm.asl @@ -17,7 +17,7 @@ //* SSDT for TPM TIS Interface for Xen with Qemu device model -DefinitionBlock ("SSDT_TPM.aml", "SSDT", 1, "IBM","xen", 2006) +DefinitionBlock ("SSDT_TPM.aml", "SSDT", 2, "Xen", "HVM", 0) { Device (TPM) { Name (_HID, EisaId ("PNP0C31")) @@ -26,4 +26,4 @@ DefinitionBlock ("SSDT_TPM.aml", "SSDT", 1, "IBM","xen", 2006) Memory32Fixed (ReadWrite, 0xFED40000, 0x5000,) }) } -} \ No newline at end of file +} diff --git a/tools/firmware/hvmloader/acpi/ssdt_tpm.h b/tools/firmware/hvmloader/acpi/ssdt_tpm.h index 9d943a3a36..2585314ceb 100644 --- a/tools/firmware/hvmloader/acpi/ssdt_tpm.h +++ b/tools/firmware/hvmloader/acpi/ssdt_tpm.h @@ -1,11 +1,11 @@ /* * * Intel ACPI Component Architecture - * ASL Optimizing Compiler version 20060707 [Sep 11 2006] + * ASL Optimizing Compiler version 20060707 [Dec 30 2006] * Copyright (C) 2000 - 2006 Intel Corporation * Supports ACPI Specification Revision 3.0a * - * Compilation of "acpi_ssdt_tpm.asl" - Mon Oct 30 11:28:27 2006 + * Compilation of "ssdt_tpm.asl" - Sat Dec 30 15:31:27 2006 * * C source code output * @@ -13,9 +13,9 @@ unsigned char AmlCode_TPM[] = { 0x53,0x53,0x44,0x54,0x4C,0x00,0x00,0x00, /* 00000000 "SSDTL..." */ - 0x01,0x6D,0x49,0x42,0x4D,0x00,0x00,0x00, /* 00000008 ".mIBM..." */ - 0x78,0x65,0x6E,0x00,0x00,0x00,0x00,0x00, /* 00000010 "xen....." */ - 0xD6,0x07,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ + 0x02,0x56,0x58,0x65,0x6E,0x00,0x00,0x00, /* 00000008 ".VXen..." */ + 0x48,0x56,0x4D,0x00,0x00,0x00,0x00,0x00, /* 00000010 "HVM....." */ + 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ 0x07,0x07,0x06,0x20,0x5B,0x82,0x26,0x54, /* 00000020 "... [.&T" */ 0x50,0x4D,0x5F,0x08,0x5F,0x48,0x49,0x44, /* 00000028 "PM_._HID" */ 0x0C,0x41,0xD0,0x0C,0x31,0x08,0x5F,0x43, /* 00000030 ".A..1._C" */ diff --git a/tools/firmware/hvmloader/acpi/static_tables.c b/tools/firmware/hvmloader/acpi/static_tables.c index 0890700f7a..96d7f0c331 100644 --- a/tools/firmware/hvmloader/acpi/static_tables.c +++ b/tools/firmware/hvmloader/acpi/static_tables.c @@ -118,7 +118,7 @@ struct acpi_20_xsdt Xsdt = { .signature = ACPI_2_0_XSDT_SIGNATURE, .length = sizeof(struct acpi_header), .revision = ACPI_2_0_XSDT_REVISION, - .oem_id = ACPI_OEM_ID, + .oem_id = ACPI_OEM_ID, .oem_table_id = ACPI_OEM_TABLE_ID, .oem_revision = ACPI_OEM_REVISION, .creator_id = ACPI_CREATOR_ID, @@ -130,7 +130,7 @@ struct acpi_20_xsdt Xsdt = { struct acpi_20_rsdp Rsdp = { .signature = ACPI_2_0_RSDP_SIGNATURE, .oem_id = ACPI_OEM_ID, - .revision = ACPI_OEM_REVISION, + .revision = ACPI_2_0_RSDP_REVISION, .length = sizeof(struct acpi_20_rsdp) }; diff --git a/tools/firmware/vmxassist/vm86.c b/tools/firmware/vmxassist/vm86.c index 4715c31075..78c1da0d88 100644 --- a/tools/firmware/vmxassist/vm86.c +++ b/tools/firmware/vmxassist/vm86.c @@ -961,9 +961,9 @@ protected_mode(struct regs *regs) /* initialize jump environment to warp back to protected mode */ regs->uss = DATA_SELECTOR; - regs->uesp = stack_top; + regs->uesp = (unsigned long)stack_top; regs->cs = CODE_SELECTOR; - regs->eip = (unsigned) switch_to_protected_mode; + regs->eip = (unsigned long)switch_to_protected_mode; /* this should get us into 32-bit mode */ }